package com.yxw.yxnet_cd_center.customer_service.service;

import com.yxw.yxnet_cd_center.customer_service.dto.*;
import com.yxw.yxnet_cd_center.common.dto.PageVO;
import com.yxw.yxnet_cd_center.customer_service.vo.FlowRuleVo;
import com.yxw.yxnet_cd_center.customer_service.vo.YxCsFlockVo;

import java.util.List;

/**
 * 工作群管理
 * @author liuxin
 * @date 2023.09.17
 */
public interface FlockService {

    /**
     * 工作组分群-设置群
     * @param dto
     */
    void addFlock(FlockAddDTO dto);

    /**
     * 分流管理-群列表查询
     * @param dto
     * @return
     */
    PageVO<YxCsFlockVo> getFlockList(FlockQueryDTO dto);

    /**
     * 分流管理-群启用/禁用
     * @param dto
     */
    void updateFlockStatusById(StatusUpdateDTO dto);

    /**
     * 分流管理-设置分流规则
     * @param dto
     */
    void addWorkflowRule(FlowRuleAddDTO dto);

    /**
     * 工作群成员删除/新增
     * @param dto
     */
    void saveFlockUser(FlockUserUpdateDTO dto);

    /**
     * 工作群群主转移
     * @param dto
     */
    void updateFlockLeader(FlockLeaderUpdateDTO dto);

    /**
     * 群详情
     * @param flockId
     * @return
     */
    YxCsFlockVo getFlockById(Long flockId);

    /**
     * 工作组分群-设置群详情页查询群列表
     * @param groupId
     * @return
     */
    List<FlockDTO> getFlockListByAddFlock(Long groupId);

    /**
     * 分流管理-设置分流规则规则查询
     * @param dto
     * @return
     */
    List<FlowRuleVo> getWorkflowRuleList(FlowRuleQueryDTO dto);
}
